Skip to content

ci: add dual build artifacts for Windows (min-rust vs migrations)#2208

Merged
cfsmp3 merged 1 commit intomasterfrom
ci/dual-build-artifacts-windows
Mar 17, 2026
Merged

ci: add dual build artifacts for Windows (min-rust vs migrations)#2208
cfsmp3 merged 1 commit intomasterfrom
ci/dual-build-artifacts-windows

Conversation

@cfsmp3
Copy link
Contributor

@cfsmp3 cfsmp3 commented Mar 17, 2026

Summary

  • Add $(ExtraDefines) to PreprocessorDefinitions in all 4 vcxproj configurations (Debug-Full/Release-Full x Win32/x64), empty by default (no-op)
  • Windows CI now builds Release-Full twice per architecture:
    • Min Rust (/p:ExtraDefines=DISABLE_RUST) → CCExtractor Windows x64 Release build (existing artifact name)
    • Max Rust (no ExtraDefines) → CCExtractor Windows x64 Release build (with migrations) (new artifact)
  • Companion to ci: add dual build artifacts to compare C vs Rust code paths #2207 which does the same for Linux

How it works

The vcxproj now includes $(ExtraDefines) at the start of each PreprocessorDefinitions. When the CI passes /p:ExtraDefines=DISABLE_RUST, the C code paths are used for switchable modules (DTVCC, demuxer, AVC, networking). The Rust library still links for Rust-only modules. The migrations build uses /t:Rebuild for a clean rebuild without the flag.

Test plan

  • CI builds both artifacts for x64 and x86
  • Both artifacts produce identical output on sample platform
  • Sample platform recognizes new "with migrations" artifact name

🤖 Generated with Claude Code

Add $(ExtraDefines) to PreprocessorDefinitions in all 4 configurations
of the vcxproj. This allows passing /p:ExtraDefines=DISABLE_RUST from
the MSBuild command line to use C code paths for switchable modules.

The Windows CI now produces two Release artifacts per architecture:
- "CCExtractor Windows x64 Release build" — min Rust (DISABLE_RUST)
- "CCExtractor Windows x64 Release build (with migrations)" — max Rust

The migrations build uses /t:Rebuild to do a clean rebuild without
DISABLE_RUST after the min-rust build completes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ccextractor-bot
Copy link
Collaborator

CCExtractor CI platform finished running the test files on windows. Below is a summary of the test results, when compared to test for commit 578abca...:
Report Name Tests Passed
Broken 9/13
CEA-708 1/14
DVB 3/7
DVD 3/3
DVR-MS 2/2
General 23/27
Hardsubx 1/1
Hauppage 3/3
MP4 3/3
NoCC 10/10
Options 75/86
Teletext 20/21
WTV 13/13
XDS 32/34

Your PR breaks these cases:

  • ccextractor --autoprogram --out=ttxt --latin1 --ucla --xds 8e8229b88b...
  • ccextractor --service 1 --out=ttxt da904de35d...
  • ccextractor --autoprogram --out=srt --latin1 --quant 0 85271be4d2...
  • ccextractor --autoprogram --out=srt --latin1 b22260d065...
  • ccextractor --autoprogram --out=ttxt --latin1 --ucla 7aad20907e...
  • ccextractor --autoprogram --out=ttxt --latin1 --ucla dab1c1bd65...
  • ccextractor --out=srt --latin1 --autoprogram 29e5ffd34b...
  • ccextractor --out=spupng c83f765c66...
  • ccextractor --startcreditstext "CCextractor Start crdit Testing" c4dd893cb9...
  • ccextractor --startcreditsnotbefore 1 --startcreditstext "CCextractor Start crdit Testing" c4dd893cb9...
  • ccextractor --startcreditsnotafter 2 --startcreditstext "CCextractor Start crdit Testing" c4dd893cb9...
  • ccextractor --startcreditsforatleast 1 --startcreditstext "CCextractor Start crdit Testing" c4dd893cb9...
  • ccextractor --startcreditsforatmost 2 --startcreditstext "CCextractor Start crdit Testing" c4dd893cb9...
  • ccextractor --autoprogram --out=ttxt --xds --latin1 --ucla 85058ad37e...
  • ccextractor --autoprogram --out=srt --latin1 --ucla b22260d065...

NOTE: The following tests have been failing on the master branch as well as the PR:


It seems that not all tests were passed completely. This is an indication that the output of some files is not as expected (but might be according to you).

Check the result page for more info.

@cfsmp3 cfsmp3 merged commit 52b5385 into master Mar 17, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants